package org.lanqiao.tjut.validator;

import org.lanqiao.tjut.bean.UsersEntity;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;

public class UsersValidator implements Validator {

	@Override
	public boolean supports(Class<?> clazz) {
		// 需要说明该验证是针对pojo实体类进行验证的
		// 比配 需要验证的目标类和当前支持clazz是否是同一个类
		return UsersEntity.class.equals(clazz);
	}

	@Override
	public void validate(Object obj, Errors er) {
		// obj就是我们要验证的pojo类（从controller层传过来的，已经完成的数据的转换映射初始化处理）
		// 进行验证业务逻辑处理
		UsersEntity userE = (UsersEntity) obj;

		if (userE.getUsername() == null || userE.getUsername().equals("")) {
			// 设置错误提示信息
			/*
			 * 第一个参数表单域field（表单的name/path属性）   第二个参数国际化资源文件中的key值  
			 * 第三个参数国际化资源文件中占位符的值（参数类型时是：new Object[]{}）  
			 * 第四个参数错误提示信息（默认，如果有第二个参数的值，则优先使用第二个参数的值）
			 */
			// er.rejectValue("username", null, null, "用户名信息不能为空
			er.rejectValue("username", "errormsg.usersman.username", new Object[] { "用户名", "  " }, "!!!");
		}
		// 用户年龄验证
		if (userE.getUserage() == 0) {
			er.rejectValue("userage", null, null, "用户名年龄不能为0或空");
		}

	}

}
